home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-22 | 5.7 KB | 159 lines | [TEXT/MPS ] |
- /*------------------------------------------------------------------------------
- *
- * Apple Macintosh Developer Technical Support
- *
- * Installer 3.2 sample: demonstrates installing an INIT into the appropriate folder
- *
- * File: InstallINIT.r - Rez Source
- *
- * by: Jon Zap
- *
- * Copyright © 1991 Apple Computer, Inc.
- * All rights reserved.
- *
- *------------------------------------------------------------------------------
- * This sample installs "TheINIT" into the appropriate system
- * folder. It allows for custom installation/removal. With Installer 3.1 we had
- * to distinguish between 7.0 and pre 7.0 systems because the installer would
- * create the extensions folder if it did not exist. The Installer now handles this
- * so if we specify the extensions folder but it does not exist, the Installer will
- * use the system folder instead. This greatly simplifies the script.
- *----------------------------------------------------------------------------*/
-
- #include "Types.r" /* for the ICON resource */
- #include "InstallerTypes.r"
-
- /* You can build and complete the script with the following lines:
- # Note: set up floppies with the appropriate names and contents before running scriptcheck
- # or set up folders with the same names and contents as the floppies
- # put these folders in the same folder as the script or at the root directory of same disk
-
- rez -o "InstallINIT" -t 'bjbc' -c 'bjbc' "InstallINIT.r"
- setfile -a i "InstallINIT" #mark Inited
- scriptcheck -p "InstallINIT"
- */
-
- /* put a 1 in the creation date field of source 'infs' to have ScriptCheck set date */
- #define kScriptCheckSetsDate 0x01
-
- /* Definitions for the rules */
- #define rlAddInit 1000
-
- /* Defines for the file spec atoms. These are specifications for source and destination files */
- #define fsSourceINIT 2000
- #define fsTargetINIT 2001
-
- /* This is the name of the source disk */
- #define INITDisk "INIT Disk:"
-
- /* where we want to install our file. */
- #define TargetPath "special-extns:"
-
- /* Definition for the package. */
- #define pkTheINIT 3000
-
- /* Definition for the file atom */
- #define faINIT 4000
-
- /* Definition for the package comment resource */
- #define cmtTheINIT 5000
- #define iconTheINIT 6000
-
- /* October 10, 1990 is the current release date I put in 'icmt' rsrcs. ScriptCheck will convert */
- /* this value to a LongInt seconds value needed by the Installer. */
- #define currentReleaseDate 10101990
- #define currentVersion 100 /* Version 1.0 goes in the 'icmt' rsrc */
-
-
- /************************** Easy Install Rule resources **********************************/
- resource 'infr' (1) {
- format0 {{
- pickAll, {rlAddInit}, /* Select the rule */
- }};
- };
-
- /* note the '.' in the first rule is missing in the 2nd rule so we can differentiate*/
- resource 'inrl' (rlAddInit) {
- format0 {{
- addUserDescription {"The INIT.\n"}, /* message to appear in Easy Install screen */
- addPackages {{pkTheINIT}} /* we're installing the INIT */
- }};
- };
-
- /***************************** Package Resources ************************************************/
- resource 'inpk' (pkTheINIT) {
- format0 {
- ShowsOnCustom, /* Package appears in the Custom Install display */
- Removable, /* Package can be removed */
- forceRestart, /* so we actually activate the init */
- cmtTheINIT, /* package's 'icmt' resource id */
- 0, /* Package size (filled in by ScriptCheck) */
- "Install TheINIT", { /* package name for package that shows on custom */
- 'infa', faINIT;
- }
- }
- };
-
- /***************************** Comments ************************************************/
- resource 'icmt' (cmtTheINIT) {
- currentReleaseDate,
- currentVersion,
- iconTheINIT,
- "This package contains TheINIT. "
- };
-
- resource 'ICON' (iconTheINIT) {
- $"0430 4000 0A50 A000 0B91 1002 0822 0803"
- $"1224 0405 2028 0209 4010 0111 800C 00A1"
- $"8003 FFC2 7E00 FF04 0100 7F04 0300 1E08"
- $"04E0 000C 08E0 000A 10E0 0009 08C0 0006"
- $"0487 FE04 0288 0104 0188 0084 0088 0044"
- $"0088 0044 0088 00C4 0110 0188 0228 0310"
- $"01C4 04E0 0002 0800 73BF FBEE 4CA2 8A2A"
- $"40AA AAEA 52AA AA24 5EA2 8AEA 73BE FB8E",
- };
-
-
-
- /********************************************* File Specs *******************************************/
- /* Source File Specs */
- resource 'infs' (fsSourceINIT) {
- 'INIT', /* File Type */
- '????', /* Creator */
- kScriptCheckSetsDate, /* ScriptCheck fills in the creation date */
- noSearchForFile, /* Do not search the source disk for the file */
- TypeCrMustMatch, /* file type and creator on source disk must match */
- INITDisk"TheINIT" /* Path to the file */
- };
-
- /* Target File Specs */
- resource 'infs' (fsTargetINIT) {
- 'INIT', /* File Type */
- '????', /* Creator */
- 0, /* creation date not needed for target file specs */
- noSearchForFile, /* Do not search the target disk for the file */
- TypeCrMustMatch, /* not needed for target file specs */
- TargetPath"TheINIT" /* destination Path */
- };
-
-
- /******************************************** File Atoms ************************************************/
- resource 'infa' (faINIT) {
- format0 {
- delRemove, /* Delete the file if remove (option-custom) is clicked */
- delInstall, /* Delete the target before copying new one */
- copy, /* Copy the file to the destination */
- leaveAloneIfNewer, /* do not Install this version, if newer one exists */
- noKeepExisting, /* Always replace an existing copy */
- copyIfNewOrUpdate, /* Copy whether the target file exists or not */
- rsrcFork, dataFork, /* Copy both forks of the file */
- fsTargetINIT, /* TARGET file spec for this file */
- fsSourceINIT, /* SOURCE file spec for this file */
- 0, /* atom size (filled in by ScriptCheck) */
- "" /* Atom Description (Installer will use file name) */
- };
- };
-
-
-
-